/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package service;

import controladores.NotaEntradaJpaController;
import controladores.SesionJpaController;
import entidades.NotaEntrada;
import entidades.Sesion;
import java.util.List;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.HeaderParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;

/**
 *
 * @author fcarou
 */
@Path ("notasEntrada")
public class RestNotasEntrada
{
    @GET
    @Path ("notasPorUsuario")
    @Produces (MediaType.APPLICATION_JSON)
    public List<NotaEntrada> getNotasEntrada (@HeaderParam ("codigo") String codigo)
    {
        NotaEntradaJpaController con = new NotaEntradaJpaController();
        return con.getNotasEntradaSesion(codigo);
    }
    
    @GET
    @Path ("noLeidas")
    @Produces (MediaType.APPLICATION_JSON)
    public List<NotaEntrada> getNotasEntradaNoLeidas (@HeaderParam ("codigo") String codigo)
    {
        NotaEntradaJpaController con = new NotaEntradaJpaController();
        return con.getNotasEntradaNoLeidasSesion(codigo);
    }
    
    @GET
    @Path ("marcarLeida")
    public boolean marcarLeida (@QueryParam ("id") long id, @HeaderParam ("codigo") String codigo)
    {
        if (!new SesionJpaController().checkCodigoSesion(codigo))
            return false;
        
        NotaEntradaJpaController con = new NotaEntradaJpaController();
        NotaEntrada nota = con.getEntityManager().find(NotaEntrada.class, id);
        
        if (nota == null || nota.isLeido())
            return false;
        
        nota.setLeido(true);
        return con.edit(nota);
    }
    
    @POST
    @Path ("create")
    @Consumes (MediaType.APPLICATION_JSON)
    public boolean create (NotaEntrada nota, @HeaderParam ("codigo") String codigo)
    {
        if (!new SesionJpaController().checkCodigoSesion(codigo))
            return false;
        
        NotaEntradaJpaController con = new NotaEntradaJpaController();
        
        return con.create(nota);
    }
}
